export const parsePoint = (lng, lat?) => {
    const type = Object.prototype.toString.call(lng).slice(8, -1).toLowerCase();
    if (type === 'array') {
        lng = lng[0];
        lat = lat[1];
    }
    if (type === 'object') {
        lng = lng.lng || lng.lon || lng.longitude;
        lat = lng.lat || lng.latitude;
    }
    if (type === 'string') {
        if (!lat) {
            [lng, lat] = lng.split(/\,|\，|\-|\~/);
        }
    }

    return new Point(lng, lat);
};

export class Point {
    static parse = parsePoint;
    static from = parsePoint;

    lng = 0;
    lon = 0;
    longitude = 0;
    lat = 0;
    latitude = 0;
    constructor(lng, lat) {
        this.lng = Number(lng);
        this.lat = Number(lat);

        this.lon = this.lng;
        this.longitude = this.lng;
        this.latitude = this.lat;
    }

    arr() {
        return [this.lng, this.lat];
    }
}
